[INFO] cloning repository https://github.com/kcoulsy/php-checker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kcoulsy/php-checker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkcoulsy%2Fphp-checker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkcoulsy%2Fphp-checker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 186df0ec0092a15a1b41eb1ae2fd4b03bea6e0f3
[INFO] testing kcoulsy/php-checker against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkcoulsy%2Fphp-checker" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kcoulsy/php-checker
[INFO] finished tweaking git repo https://github.com/kcoulsy/php-checker
[INFO] tweaked toml for git repo https://github.com/kcoulsy/php-checker written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kcoulsy/php-checker on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kcoulsy/php-checker already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded notify v5.2.0
[INFO] [stderr]   Downloaded libredox v0.1.10
[INFO] [stderr]   Downloaded cc v1.0.106
[INFO] [stderr]   Downloaded tree-sitter-php v0.20.0
[INFO] [stderr]   Downloaded tree-sitter v0.20.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a06a8a12af59dd65857533d8787b3c13054583f808261f36fcc4873697a3e020
[INFO] running `Command { std: "docker" "start" "-a" "a06a8a12af59dd65857533d8787b3c13054583f808261f36fcc4873697a3e020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a06a8a12af59dd65857533d8787b3c13054583f808261f36fcc4873697a3e020", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a06a8a12af59dd65857533d8787b3c13054583f808261f36fcc4873697a3e020", kill_on_drop: false }`
[INFO] [stdout] a06a8a12af59dd65857533d8787b3c13054583f808261f36fcc4873697a3e020
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 68b81c92f0449ea24147b80efc509b1333041199219526281e436924b8ef9fdd
[INFO] running `Command { std: "docker" "start" "-a" "68b81c92f0449ea24147b80efc509b1333041199219526281e436924b8ef9fdd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling cc v1.0.106
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling tree-sitter v0.20.10
[INFO] [stderr]    Compiling tree-sitter-php v0.20.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling notify v5.2.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling php-checker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:50
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_expr`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:65
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:679:54
[INFO] [stdout]     |
[INFO] [stdout] 679 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:697:54
[INFO] [stdout]     |
[INFO] [stdout] 697 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.34s
[INFO] running `Command { std: "docker" "inspect" "68b81c92f0449ea24147b80efc509b1333041199219526281e436924b8ef9fdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "68b81c92f0449ea24147b80efc509b1333041199219526281e436924b8ef9fdd", kill_on_drop: false }`
[INFO] [stdout] 68b81c92f0449ea24147b80efc509b1333041199219526281e436924b8ef9fdd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0e512b057939a5e575b7000da93aa7e4988b51af5c5318cbd16237fca458c4d3
[INFO] running `Command { std: "docker" "start" "-a" "0e512b057939a5e575b7000da93aa7e4988b51af5c5318cbd16237fca458c4d3", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:50
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_expr`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:65
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:679:54
[INFO] [stdout]     |
[INFO] [stdout] 679 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:697:54
[INFO] [stdout]     |
[INFO] [stdout] 697 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling php-checker v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::analyzer::parser::PhpParser`
[INFO] [stdout]   --> src/analyzer/phpdoc/extractor.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     use crate::analyzer::parser::PhpParser;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::analyzer::parser::TreeSitterPhpParser`
[INFO] [stdout]   --> src/analyzer/phpdoc/extractor.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     use crate::analyzer::parser::TreeSitterPhpParser;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_no_diagnostics`
[INFO] [stdout]    --> src/analyzer/rules/security/hard_coded_keys.rs:116:72
[INFO] [stdout]     |
[INFO] [stdout] 116 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_diagnostics_exact`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/arithmetic_type.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |         assert_diagnostics_exact, assert_has_diagnostics, assert_no_diagnostics, parse_php,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_diagnostics_exact`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_method_check.rs:212:46
[INFO] [stdout]     |
[INFO] [stdout] 212 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_diagnostics_exact`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_property_check.rs:212:46
[INFO] [stdout]     |
[INFO] [stdout] 212 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `assert_diagnostics_exact`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_throws_check.rs:274:46
[INFO] [stdout]     |
[INFO] [stdout] 274 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/analyzer/phpdoc/extractor.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut cursor = root.walk();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor`
[INFO] [stdout]   --> src/analyzer/phpdoc/extractor.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut cursor = root.walk();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:50
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_expr`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:65
[INFO] [stdout]     |
[INFO] [stdout] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:679:54
[INFO] [stdout]     |
[INFO] [stdout] 679 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_type`
[INFO] [stdout]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:697:54
[INFO] [stdout]     |
[INFO] [stdout] 697 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assert_diagnostics` is never used
[INFO] [stdout]    --> src/analyzer/rules/test_utils.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn assert_diagnostics(diagnostics: &[Diagnostic], expected_messages: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.11s
[INFO] running `Command { std: "docker" "inspect" "0e512b057939a5e575b7000da93aa7e4988b51af5c5318cbd16237fca458c4d3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e512b057939a5e575b7000da93aa7e4988b51af5c5318cbd16237fca458c4d3", kill_on_drop: false }`
[INFO] [stdout] 0e512b057939a5e575b7000da93aa7e4988b51af5c5318cbd16237fca458c4d3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ff951f869c074bf5df735b6e2d83be1d52eb9c5b1036343ea02e0624e337eb31
[INFO] running `Command { std: "docker" "start" "-a" "ff951f869c074bf5df735b6e2d83be1d52eb9c5b1036343ea02e0624e337eb31", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `expected_type`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:50
[INFO] [stderr]     |
[INFO] [stderr] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `type_expr`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:65
[INFO] [stderr]     |
[INFO] [stderr] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stderr]     |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_expr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_type`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:679:54
[INFO] [stderr]     |
[INFO] [stderr] 679 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_type`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:697:54
[INFO] [stderr]     |
[INFO] [stderr] 697 | ...                   if let Some((expected_type, _type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::analyzer::parser::PhpParser`
[INFO] [stderr]   --> src/analyzer/phpdoc/extractor.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 |     use crate::analyzer::parser::PhpParser;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::analyzer::parser::TreeSitterPhpParser`
[INFO] [stderr]   --> src/analyzer/phpdoc/extractor.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 |     use crate::analyzer::parser::TreeSitterPhpParser;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_no_diagnostics`
[INFO] [stderr]    --> src/analyzer/rules/security/hard_coded_keys.rs:116:72
[INFO] [stderr]     |
[INFO] [stderr] 116 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stderr]     |                                                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_diagnostics_exact`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/arithmetic_type.rs:151:9
[INFO] [stderr]     |
[INFO] [stderr] 151 |         assert_diagnostics_exact, assert_has_diagnostics, assert_no_diagnostics, parse_php,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_diagnostics_exact`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_method_check.rs:212:46
[INFO] [stderr]     |
[INFO] [stderr] 212 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_diagnostics_exact`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_property_check.rs:212:46
[INFO] [stderr]     |
[INFO] [stderr] 212 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `assert_diagnostics_exact`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_throws_check.rs:274:46
[INFO] [stderr]     |
[INFO] [stderr] 274 |     use crate::analyzer::rules::test_utils::{assert_diagnostics_exact, assert_no_diagnostics, parse_php, run_rule};
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/analyzer/phpdoc/extractor.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let mut cursor = root.walk();
[INFO] [stderr]    |             ----^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cursor`
[INFO] [stderr]   --> src/analyzer/phpdoc/extractor.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let mut cursor = root.walk();
[INFO] [stderr]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `expected_type`
[INFO] [stderr]    --> src/analyzer/rules/strict_typing/phpdoc_var_check.rs:663:50
[INFO] [stderr]     |
[INFO] [stderr] 663 | ...                   if let Some((expected_type, type_expr)) = tracker.get_variable_type(&var_name) {
[INFO] [stderr]     |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_type`
[INFO] [stderr] 
[INFO] [stderr] warning: function `assert_diagnostics` is never used
[INFO] [stderr]    --> src/analyzer/rules/test_utils.rs:145:8
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub fn assert_diagnostics(diagnostics: &[Diagnostic], expected_messages: &[&str]) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `php-checker` (lib) generated 4 warnings (run `cargo fix --lib -p php-checker` to apply 4 suggestions)
[INFO] [stderr] warning: `php-checker` (lib test) generated 14 warnings (3 duplicates) (run `cargo fix --lib -p php-checker --tests` to apply 10 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/php_checker-e68aee222abd933b)
[INFO] [stdout] 
[INFO] [stdout] running 287 tests
[INFO] [stdout] test analyzer::ignore::tests::ignores_file_when_directive_has_no_tokens ... ok
[INFO] [stdout] test analyzer::config::tests::psr4_config_deserializes_values ... ok
[INFO] [stdout] test analyzer::config::tests::rule_group_defaults_propagate_to_children ... ok
[INFO] [stdout] test analyzer::ignore::tests::ignores_file_when_directive_is_file_alias ... ok
[INFO] [stdout] test analyzer::config::tests::specific_rule_toggle_overrides_group ... ok
[INFO] [stdout] test analyzer::ignore::tests::ignores_group_from_block_comment_without_hitting_wildcard ... ok
[INFO] [stdout] test analyzer::ignore::tests::ignores_specific_rule_without_affecting_siblings ... ok
[INFO] [stdout] test analyzer::ignore::tests::ignores_with_hash_comment_prefix ... ok
[INFO] [stdout] test analyzer::ignore::tests::parses_rule_and_group_tokens ... ok
[INFO] [stdout] test analyzer::ignore::tests::stops_parsing_at_inline_comment_end ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_generic_type ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_nullable_type ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_param_tag ... ok
[INFO] [stdout] test analyzer::phpdoc::extractor::tests::test_extract_phpdoc_from_function ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_phpdoc_comment ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_union_type ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_split_params_with_nesting ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_simple_type ... ok
[INFO] [stdout] test analyzer::rules::api::deprecated_api::tests::test_deprecated_api ... ok
[INFO] [stdout] test analyzer::rules::api::invalid_this::tests::test_invalid_this ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_use::tests::test_unused_use_valid ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_variable::tests::test_unused_variable ... ok
[INFO] [stdout] test analyzer::rules::api::invalid_this::tests::test_invalid_this_valid ... ok
[INFO] [stdout] test analyzer::rules::cleanup::method_chain_length::tests::test_chain_at_limit_ok ... ok
[INFO] [stdout] test analyzer::rules::cleanup::method_chain_length::tests::test_long_chain_flagged ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_variable::tests::test_unused_variable_fix ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_variable::tests::test_unused_variable_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::duplicate_switch_case::tests::test_duplicate_switch_case_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::fallthrough::tests::test_fallthrough ... ok
[INFO] [stdout] test analyzer::rules::control_flow::guard_inference::tests::test_is_string_guard_not_flagged ... ok
[INFO] [stdout] test analyzer::rules::control_flow::fallthrough::tests::test_fallthrough_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::duplicate_switch_case::tests::test_duplicate_switch_case ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_var_tag_with_generic_array ... ok
[INFO] [stdout] test analyzer::rules::control_flow::guard_inference::tests::test_method_call_on_null_flagged ... ok
[INFO] [stdout] test analyzer::rules::cleanup::method_chain_length::tests::test_single_call_ok ... ok
[INFO] [stdout] test analyzer::phpdoc::parser::tests::test_parse_array_type ... ok
[INFO] [stdout] test analyzer::rules::cleanup::method_chain_length::tests::test_short_chain_ok ... ok
[INFO] [stdout] test analyzer::rules::cleanup::nested_loop_depth::tests::test_mixed_loop_types_flagged ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_use::tests::test_unused_use ... ok
[INFO] [stdout] test analyzer::rules::control_flow::guard_inference::tests::test_no_if_statement_ok ... ok
[INFO] [stdout] test analyzer::rules::cleanup::nested_loop_depth::tests::test_sequential_loops_not_flagged ... ok
[INFO] [stdout] test analyzer::rules::cleanup::nested_loop_depth::tests::test_three_level_nesting_ok ... ok
[INFO] [stdout] test analyzer::rules::control_flow::impossible_comparison::tests::test_impossible_comparison ... ok
[INFO] [stdout] test analyzer::rules::control_flow::guard_inference::tests::test_property_access_on_null_flagged ... ok
[INFO] [stdout] test analyzer::rules::cleanup::nested_loop_depth::tests::test_four_level_nesting_flagged ... ok
[INFO] [stdout] test analyzer::rules::psr4::namespace::tests::test_namespace_mismatch ... ok
[INFO] [stdout] test analyzer::rules::sanity::array_key_not_defined::tests::test_array_key_not_defined ... ok
[INFO] [stdout] test analyzer::rules::control_flow::redundant_condition::tests::test_redundant_condition ... ok
[INFO] [stdout] test analyzer::rules::control_flow::redundant_condition::tests::test_redundant_condition_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::impossible_comparison::tests::test_impossible_comparison_valid ... ok
[INFO] [stdout] test analyzer::rules::sanity::array_key_not_defined::tests::test_array_key_not_defined_valid ... ok
[INFO] [stdout] test analyzer::rules::psr4::namespace::tests::test_valid_namespace ... ok
[INFO] [stdout] test analyzer::rules::sanity::duplicate_declaration::tests::test_duplicate_declaration ... ok
[INFO] [stdout] test analyzer::rules::control_flow::unreachable::tests::test_unreachable_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::unreachable_statement::tests::test_unreachable_statement ... ok
[INFO] [stdout] test analyzer::rules::control_flow::unreachable_statement::tests::test_unreachable_statement_valid ... ok
[INFO] [stdout] test analyzer::rules::sanity::duplicate_declaration::tests::test_duplicate_declaration_valid ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_actual_undefined ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_catch_clause_variables ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_function::tests::test_locally_defined_function_ok ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_function::tests::test_php_builtins_ok ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_function::tests::test_array_functions_ok ... ok
[INFO] [stdout] test analyzer::rules::security::hard_coded_credentials::tests::test_hard_credentials_file ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_foreach_key_value ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_undefined_variable ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_class_properties ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_undefined_variable_valid ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_combined_cases ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_function::tests::test_undefined_function_flagged ... ok
[INFO] [stdout] test analyzer::rules::security::hard_coded_keys::tests::test_hard_coded_keys_file ... ok
[INFO] [stdout] test analyzer::rules::sanity::undefined_variable::tests::test_foreach_value ... ok
[INFO] [stdout] test analyzer::rules::security::mutating_literal::tests::test_mutating_literal_file ... ok
[INFO] [stdout] test analyzer::rules::security::mutating_literal::tests::test_mutating_literal_fix ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_array_plus_number_flagged ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_number_minus_array_flagged ... ok
[INFO] [stdout] test analyzer::rules::security::mutating_literal::tests::test_mutating_literal_valid ... ok
[INFO] [stdout] test analyzer::rules::security::include_user_input::tests::test_include_user_input_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_array_union_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_string_concat_ok ... ok
[INFO] [stdout] test analyzer::rules::security::weak_hashing::tests::test_weak_hashing_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_string_minus_number_flagged ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::force_return_type::tests::test_force_return_type_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_return::tests::test_missing_return_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::force_return_type::tests::test_force_return_type_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_argument::tests::test_missing_argument_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_argument::tests::test_variadic_function_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::null_argument::tests::test_null_passed_to_non_nullable_int ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::consistent_return::tests::test_inconsistent_return_types ... ok
[INFO] [stdout] test analyzer::rules::security::weak_hashing::tests::test_weak_hashing_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_argument::tests::test_multi_namespace_missing_arg ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_return::tests::test_missing_return_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::missing_argument::tests::test_missing_argument_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::consistent_return::tests::test_consistent_return_types_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::null_argument::tests::test_non_null_args_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::null_argument::tests::test_null_passed_to_non_nullable_string ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::null_argument::tests::test_null_passed_to_nullable_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::null_argument::tests::test_null_second_arg_non_nullable ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_override ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_extra_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_inheritance ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_missing_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::consistent_return::tests::test_consistent_return_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_undefined_call ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_nullable_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_return_type_mismatch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_array_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_union_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_nullable_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_object_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_static_method_call ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_void_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_static_method_instance_call ... ok
[INFO] [stdout] test analyzer::rules::control_flow::guard_inference::tests::test_null_check_no_method_call_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_missing_magic_call_method ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_multiple_parameters ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_union_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_array_type_with_wrong_element_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_parameter_type_mismatch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_no_phpdoc ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_associative_array_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_correct_types ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_array_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_class_type_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_multiple_methods ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_multiple_optional_keys ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_multiple_args ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_method_with_optional_parameter ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_deeply_nested_shaped_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_nested_shaped_array ... ok
[INFO] [stdout] test analyzer::rules::cleanup::unused_use::tests::test_unused_use_fix ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_multiple_params_different_types ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_union_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_nullable_types ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_param_adds_detail_to_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_nested_shaped_array_correct ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_04_param_object_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_optional_keys_in_shaped_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_03_param_object_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_06_param_nullable_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_05_param_nullable_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_param_contradicts_native_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_shaped_array_correct ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_object_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_function_call_with_shaped_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_missing_magic_methods ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_union_types_in_param ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_08_param_union_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_07_param_non_nullable_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_scenario_09_param_union_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_inheritance ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_override ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_missing_magic_callstatic_method ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_read_only ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_variadic_parameter_validation ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_multiple_properties ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_type_mismatch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_with_nullable_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_return_type_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_write_only ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_return_type_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_with_object_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_with_array_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_01_return_type_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_method_return_type_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_02_return_type_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_03_return_object_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_05_return_nullable_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_valid_property_access ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_04_return_nullable_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_06_return_non_nullable_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_mixed_return_becoming_specific ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_array_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_07_return_union_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_check::tests::test_scenario_08_return_union_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_inconsistent_returns ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_generic_array_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_void_with_no_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_object_array_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_generic_array_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_value_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_scenario_09_return_value_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_scenario_10_return_value_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_value_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_missing_key ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_multiple_wrong_types ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_wrong_value_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_nested ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_wrong_array_element_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_wrong_assoc_array_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_wrong_object_return ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_call_with_catch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_bool_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_shaped_array_extra_keys ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_wrong_return_value ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_conditional_throw ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_call_without_catch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_destructor_with_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_method_with_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_exception_inheritance ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_multiple_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_constructor_with_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_missing_namespace_in_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_nested_exception_throwing ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_never_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_valid_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_static_method_with_throws ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_object_array_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_throws_check::tests::test_throws_undocumented ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_property_check::tests::test_property_static_access ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_correct_property_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_global_variable_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_array_destructuring ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_nullable_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_simple_type_mismatch ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_object_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_array_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_simple_type_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_constant_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_type_narrowing_cast ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_multiple_properties_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_inline_var_union_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_property_type_change ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_nested_array_var ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_02_wrong_property_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_01_correct_property ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_03_inline_var_cast ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_05_reassignment_violation ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_04_wrong_inline_var ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_06_generic_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_07_var_union_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_08_var_union_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_09_var_array_simple ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_10_var_array_elements_match ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_static_property_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_scenario_11_var_array_elements_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_array_access_on_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_array_access_on_non_array ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_method_call_on_object ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_method_call_on_non_object ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_multiple_variables ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_property_access_on_object ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_property_access_on_non_object ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_reassignment_compatible ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_reassignment_incompatible ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_union_type_reassignment ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_usage_tracking_shaped_array_access ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_generic_array_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_generic_array_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_object_array_conflict ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_shaped_array_complex_types ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_object_array_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_wrong_inline_var ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_shaped_array_property_matches ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_wrong_assoc_array_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_shaped_array_missing_field ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_shaped_array_property_wrong_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_wrong_array_element_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_var_shaped_array_inline_variable ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::strict_types::tests::test_strict_missing_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_var_check::tests::test_wrong_property_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::strict_types::tests::test_strict_types_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::strict_types::tests::test_strict_missing_fix ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::type_mismatch::tests::test_type_mismatch_file ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::type_mismatch::tests::test_constructor_property_promotion_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_void_function_returns_value ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::type_mismatch::tests::test_type_mismatch_valid ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_nested_void_function ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_no_config ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_void_method_returns_value ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_parse_multiple_only_rules ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_non_void_function_return_ok ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_should_run_rule_with_skip_rules ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_should_run_rule_with_only_rules ... ok
[INFO] [stdout] test analyzer::tests::diagnostic_to_json_includes_span_and_snippets ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_method_check::tests::test_valid_method_call ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::arithmetic_type::tests::test_valid_arithmetic_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_no_return_type_ok ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::void_return::tests::test_void_function_bare_return_ok ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_parse_only_rules ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_correct_return_matching_native_type ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_param_check::tests::test_correct_param_matching_native_type ... ok
[INFO] [stdout] test analyzer::rules::api::deprecated_api::tests::test_deprecated_api_valid ... ok
[INFO] [stdout] test analyzer::rules::control_flow::unreachable::tests::test_unreachable ... ok
[INFO] [stdout] test analyzer::rules::strict_typing::phpdoc_return_value_check::tests::test_return_array_matches ... ok
[INFO] [stdout] test analyzer::test_config::tests::test_parse_skip_rules ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 287 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/dump_tree.rs (/opt/rustwide/target/debug/deps/dump_tree-ee2d4164b7fdaae1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/php_checker-21cbf7fc0fca26da)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests php_checker
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ff951f869c074bf5df735b6e2d83be1d52eb9c5b1036343ea02e0624e337eb31", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff951f869c074bf5df735b6e2d83be1d52eb9c5b1036343ea02e0624e337eb31", kill_on_drop: false }`
[INFO] [stdout] ff951f869c074bf5df735b6e2d83be1d52eb9c5b1036343ea02e0624e337eb31
